1. Field of the Invention
The invention relates to a system and method of composing and decomposing a decomposable read-only memory (ROM) image.
2. Description of the Related Art
A hand-held electronic device can store applications in its internal memory such as a dynamic random access memory (DRAM), or in an expansion card such as a secure digital (SD) card, a compact flash (CF) card or a multi-media card (MMC). To expand the functions or capabilities of the electronic device, a user can download applications via a network and store the applications in the internal memory or in the expansion card, and then use the operation system (OS) of the electronic device to execute the applications. The user can also download text files, databases, images, libraries, drivers or other data.
A disadvantage of the above-mentioned technique is that when the electronic device is reset or not powered, or when the expansion card storing the downloaded applications, programs or data is not inserted in the electronic device, the downloaded applications, programs or data cannot be retained. Therefore, the user has to download the applications, programs or data again after resetting or turning off the electronic device.
Another disadvantage is that the user can only expand the capabilities of the electronic device during the runtime of the OS. In other words, to expand the capabilities of the electronic device, the user has to turn on the power and boot the OS first. For independent software vendors or vertical application developers, it is costly and unfavorable to ask customers to download new applications themselves.
To solve the above-mentioned problems, a flash file system was developed. While receiving the downloaded applications, programs or data, the flash file system writes them into a flash memory directly or indirectly. Since the flash memory can store data after the power is reset or turned off, the user does not have to download the applications, programs or data again after resetting or turning off the electronic device. However, the flash file system still requires the user to download the applications during the runtime of the OS.
Another approach is to link the applications, programs or data with the OS using a linker to get a linked file, and transform the linked file into a single ROM image. Then, the ROM image is recorded into the ROM of the hand-held electronic device. Being recorded into the ROM, the applications become the built-in application of the hand-held electronic device. Therefore, after turning the hand-held electronic device on, the user can use the applications directly without downloading the applications.
However, using this approach, since the applications and the OS are linked, the applications cannot be separated from the ROM image individually. In other words, when the independent software vendors or the vertical application developers develop a new application, they cannot just delete an old application from the ROM image and add this new application into the ROM image. The independent software vendors or the vertical application developers must start by linking this new application with the OS again. Therefore, they must cooperate with the OS developer, which often delays the application-development schedule and raises the issue of trade secret protection between the OS developers and the independent software vendors or the vertical application developers.
In view of the above, an objective of the invention is to provide a method and system for composing and decomposing a decomposable ROM image.
To achieve the above objective, the method of composing a decomposable ROM image according to the invention includes creating an OS header for an OS image and a non-OS header for a non-OS image, and sequentially combines the OS header, the OS image, the non-OS header and the non-OS image. The OS header includes OS size information of the OS image. The non-OS header includes non-OS size information of the non-OS image.
The method for decomposing the decomposable ROM image according to the invention includes obtaining OS size information from the OS header, retrieving the OS image from the ROM image according to the OS size information, obtaining non-OS size information from the non-OS header, and retrieving the non-OS image from the ROM image according to the non-OS size information.
The system for composing the decomposable ROM image according to the invention includes a header creator and a combining module. The header creator creates the OS header including the OS size information and the non-OS header including the non-OS size information. The combining module sequentially combines the OS header, the OS image, the non-OS header and the non-OS image.
The system for decomposing the decomposable ROM image includes a header reader and a retriever. The header reader obtains the OS size information from the OS header and the non-OS size information from the non-OS header. The retriever retrieves the OS image and the non-OS image from the ROM image according to the OS size information and the non-OS size information.
According to the invention, when the OS of the hand-held device needs to find a specific non-OS image in the ROM image, the OS first obtains the OS size information from the OS header, and finds the non-OS header next to the OS image according to the OS size information. Then, after setting the non-OS header found as a current header and the non-OS image corresponding to the current header as a current image, the OS checks whether the current image is the specific image. If not, the OS finds the non-OS header next to the current image according to the non-OS size information retrieved from the current header and checks again.
When composing the decomposable ROM image, the system and method according to the invention may check if there exists any non-OS image that is to be composed. If such non-OS image exists, the system and method according to the invention calculates the size of this non-OS image, and creates another non-OS header containing the non-OS size information of this to-be-combined non-OS image. Then, the non-OS header and the non-OS image are sequentially attached to the decomposable ROM image.
The non-OS image may be an application image or a data image.
The OS header may contain number information of the non-OS image combined in the ROM image.